package cn.tworice.admin.dao;

import cn.tworice.common.entity.Admin;
import cn.tworice.common.entity.Role;
import cn.tworice.common.entity.RoleResources;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 角色持久层
 */
@Repository
public interface RoleDao {

    List<Role> queryRoles();

    List<Admin> queryAdminByRoleId(Integer roleId);

    int queryAdminInRole(String[] adminId, Integer roleId);

    int insertAdminToRole(String[] adminId, Integer roleId);

    void rmAdminToRole(String[] adminIds, Integer roleId);

    List<Admin> queryNoRoleAdmin(int roleId);

    int delRole(Integer roleId);

    List<Admin> queryAdminByStatus(Integer status);

    List<RoleResources> queryResourcesByRoleId(Integer roleId);

    int insertRoleResources(List<Integer> addResources, Integer roleId);

    int rmRoleResources(List<Integer> rmResources, Integer roleId);

    int delRoleResources(Integer roleId);

    int insertRole(String roleName);

    int updateRole(Integer roleId, String roleName);

    void insertRoleResource(Integer roleId, Integer[] resourcesId);

    /**
     * 删除与该资源相关的角色资源权限记录
     * @param ids
     * @return int
     * @author 二饭 [2022/5/20]
     **/
    int delRoleResourcesByRes(Integer[] ids);

    int delAdminRoleByAdmin(String[] ids);

    void delAdminRoleByRole(Integer roleId);
}